define(["jquery","utils","HeatMapKeyArea"], function($,utils, HeatMapKeyArea){
    
    function HeatMapCharAnalysArea(obj) {
        // private stuff
        HeatMapKeyArea.call(this,obj);
    };

    //erste den Prototyepen mit dem Parent überschreiben
    var _super = utils.extend(HeatMapCharAnalysArea,HeatMapKeyArea);

    //anschließend den  Prototypen der Klasse erweitern
    $.extend(HeatMapCharAnalysArea.prototype, {
          
         initInputCaptureAbility :function(){

            var t = this;
            t.initKeyList(t.heatPointList);
            t.updateCharList = function(){
                if (utils.stopanalyse) return;
                var pText = "";
                pText = $(t.domObj).val().toUpperCase();
                for(var charCounter = 0; charCounter < t.heatPointList.length;charCounter++ )
                    if(t.heatPointList[charCounter].keyCode != 32 && t.heatPointList[charCounter].Count == 0)
                        t.heatPointList[charCounter].setCount(
                            utils.getCharCount(
                                pText,
                                String.fromCharCode(t.heatPointList[charCounter].keyCode) ));
                
            };  
        },
        storeInHeatmap :function(){
            if(this.dataStored) return false;
            var t = this;
            t.updateCharList();
            $.each(t.heatPointList, function(index, val) {
                if(val.Count > 0 )
                    t.heatmap.store.addDataPoint(val.x,val.y,val.Count);        
            });
            this.dataStored = true;
        }
    });
    return HeatMapCharAnalysArea;
});